Vector computers perform operations on each element of a vector. For example, the corresponding elements of two vectors can be added to produce a vector of sums. Single Instruction Multiple Data (SIMD) architectures perform vector operations on several data elements in parallel. This is sometimes referred to as short vector architecture.
Permutation operations can reorder the elements of a vector under the control of a permutation index vector. For example, the elements of a vector can be reversed by permuting the first element to last, etc.
Some high level operations require the selection of a permutation based on data available to a program. For example, the permutation that sorts a vector depends on the relative magnitudes of the vector elements themselves. These data-based permutation operations are not supported well on existing SIMD architectures because many steps are required to produce the permutation index vector.